﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BGSpaceShooterServer;
using Microsoft.Xna.Framework;

namespace BGSpaceShooter
{
    /// <summary>
    /// Przechowuje informacje otrzymane od serwera w ServerToClientPacket dla wiadomości typu Event
    /// </summary>
    public struct ServerStateResponse
    {
        public EventType EventType { get; set; }
        public int ObjectId { get; set; }

        /// <summary>
        /// Wykorzystywane jako unia
        /// </summary>
        private int unionField1;
        /// <summary>
        /// Wykorzystywane jako unia
        /// </summary>
        private int unionField2;
        /// <summary>
        /// Nie używac z ComponentIndex
        /// </summary>
        public GameObjectType ObjectType
        {
            get
            {
                return (GameObjectType)unionField1;
            }
            set
            {
                unionField1 = (int)value;
            }
        }

        /// <summary>
        /// Nie używać z HPValue
        /// </summary>
        public GameObjectName ObjectName
        {
            get
            {
                return (GameObjectName)unionField2;
            }
            set
            {
                unionField2 = (int)value;
            }
        }

        /// <summary>
        /// Nie używać z ObjectType
        /// </summary>
        public int ComponentIndex
        {
            get
            {
                return unionField1;
            }
            set
            {
                unionField1 = value;
            }
        }

        /// <summary>
        /// Nie używać z ObjectName
        /// </summary>
        public int HPValue
        {
            get
            {
                return unionField2;
            }
            set
            {
                unionField2 = value;
            }
        }
        public Vector3 Position { get; set; }
        public Vector3 Velocity { get; set; }
        public Matrix Rotation { get; set; }

        public string Message { get; set; }
    }
}
